using System;
using System.Collections.Generic;

namespace ClassLetras
{
    public class RomanLanguage : AbtsractLanguage 
    {
        protected override void Initialize()
        {
            aLetras.Add("1", new Letter("I"));
            aLetras.Add("2", new Letter("II"));
            aLetras.Add("3", new Letter("III"));
            aLetras.Add("4", new Letter("IV"));
            aLetras.Add("5", new Letter("V"));
            aLetras.Add("6", new Letter("VI"));
            aLetras.Add("7", new Letter("VII"));
            aLetras.Add("8", new Letter("VIII"));
            aLetras.Add("9", new Letter("IX"));
            aLetras.Add("10", new Letter("X"));
            aLetras.Add("20", new Letter("XX"));
            aLetras.Add("30", new Letter("XXX"));
            aLetras.Add("40", new Letter("XL"));
            aLetras.Add("50", new Letter("L"));
            aLetras.Add("60", new Letter("LX"));
            aLetras.Add("70", new Letter("LXX"));
            aLetras.Add("80", new Letter("LXXX"));
            aLetras.Add("90", new Letter("XC"));
            aLetras.Add("100", new Letter("C"));
            aLetras.Add("200", new Letter("CC"));
            aLetras.Add("300", new Letter("CCC"));
            aLetras.Add("400", new Letter("CD"));
            aLetras.Add("500", new Letter("D"));
            aLetras.Add("600", new Letter("DC"));
            aLetras.Add("700", new Letter("DCC"));
            aLetras.Add("800", new Letter("DCCC"));
            aLetras.Add("900", new Letter("CM"));
            aLetras.Add("1000", new Letter("M"));
            aLetras.Add("2000", new Letter("MM"));
            aLetras.Add("3000", new Letter("MMM"));
        }

        protected override TLetter Rules(int iExp, int iItera) 
        {
            return TLetter.eSimple ;
        }

        protected override string GetAdditionalLetters(int iExp, int iItera)
        {
            return string.Empty;
        }

        public override string Connector
        {
            get { return string.Empty; }
        }
    }
}
